package org.myspringframework.springbootmybatisplus001.bean;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.myspringframework.springbootmybatisplus001.enums.Gender;

import java.util.Date;
import java.util.Map;

/**
 * @author fzy
 * @version 1.0
 * 创建时间：       2024-09-23 18:09
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
/**
 * 是否自动构建 resultMap 并使用, 只生效于 mp 自动注入的 method, 如果设置 resultMap 则不会进行 resultMap 的自动构建并注入,
 * 只适合个别字段 设置了 typeHandler 或 jdbcType 的情况
 */
@TableName(autoResultMap = true)
public class User extends Model<User> {
    @TableId(type=IdType.AUTO)
    Long id;
    String name;
    Integer age;
    Gender gender;
    String phone;
    //@TableField(exist = false)
    //String view;

    @TableField(fill = FieldFill.INSERT)
    Integer status;

    @TableField(typeHandler = JacksonTypeHandler.class)
    Map<String, String> contacts;

    @TableField(fill = FieldFill.INSERT)
    Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    Date updateTime;

    @Version
    Long version;
}
